<template>
  <div class="index-page">
    <div class="index-sec1">
      <div class="box box1">
        <div class="list1">
          <div class="item">
            <div class="pic">
              <img src="@/assets/images/list1-icon1.png" alt="">
            </div>
            <div class="text">
              <div class="t1">当日发电量</div>
              <div class="t2">
                <div class="num">{{ capacityData.day }}</div>
                度
              </div>
            </div>
          </div>
          <div class="item">
            <div class="pic">
              <img src="@/assets/images/list1-icon2.png" alt="">
            </div>
            <div class="text">
              <div class="t1">累计发电量</div>
              <div class="t2">
                <div class="num">{{ capacityData.sum }}</div>
                度
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="box box2">
        <div class="box-title">
          <div class="title">总发电量图表</div>
        </div>
        <el-tabs v-model="activeName" tab-position="left" style="color: white;height: 200px;"  @tab-click="handleClick">
          <el-tab-pane label="时(度)" name="first">
            <dayByHour classname="dayByHour" ></dayByHour>
          </el-tab-pane>
          <el-tab-pane label="日(度)" name="second">
            <monthByDay classname="monthByDay" ></monthByDay>
          </el-tab-pane>
          <el-tab-pane label="月(万度)" name="third">
            <yearsByMonth classname="yearsByMonth" style="margin-left: 20px"></yearsByMonth>

          </el-tab-pane>
        </el-tabs>
      </div>
      <div class="box box3">
        <div class="box-title">
          <div class="title">并网点状态总览</div>
        </div>

        <div class="box-list1">
          <div class="total-num">
            <div class="l">
              <div class="t1">正向有功电能</div>
              <div class="t2">
                <div class="num">{{ combinedStatusData.zxygdn }}</div>
                kWh
              </div>
            </div>
            <div class="m">
              <div class="pic">
                <img src="@/assets/images/icon-3.png" alt="">
              </div>
            </div>
            <div class="r">
              <div class="t1">反向有功电能</div>
              <div class="t2">
                <div class="num">{{ combinedStatusData.fxygdn }}</div>
                kWh
              </div>
            </div>
          </div>
          <div class="list2">
            <div class="item">
              <div class="t1">正向功率</div>
              <div class="t2">
                <div class="num">{{ combinedStatusData.fxgl }}</div>
                kW
              </div>
            </div>
            <div class="item">
              <div class="t1">反向功率</div>
              <div class="t2">
                <div class="num">{{ combinedStatusData.zxgl }}</div>
                kW
              </div>
            </div>
            <div class="item">
              <div class="t1">功率因数</div>
              <div class="t2">
                <div class="num">{{ combinedStatusData.glys }}</div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="box box4">
        <div class="box-title">
          <div class="title">设备统计</div>
        </div>
        <echart1 classname="echart1" :deviceNumberData="deviceNumberData"></echart1>
      </div>
    </div>
    <div class="index-sec2">
      <div class="box box1">
        <div class="list3">
          <div class="item" :class="{afoot:capacityData.yxzt, failure:!capacityData.yxzt}">
            <div class="pic">
              <img src="@/assets/images/list3-icon1.png" alt="">
            </div>
            <div class="text">
              <div class="title">光伏发电</div>
              <div class="info">
                <div class="p1 volume">
                  <div class="t1">装机容量：</div>
                  <div class="t2">150kWp</div>
                </div>
                <div class="p1 state" v-if="capacityData.yxzt">
                  <div class="t1">运行状态：</div>
                  <div class="t2"><img src="@/assets/images/icon-4.png" alt="">正常</div>
                </div>
                <div class="p1 state" v-if="!capacityData.yxzt">
                  <div class="t1">运行状态：</div>
                  <div class="t2"><img src="@/assets/images/icon-6.png" alt="">故障</div>
                </div>
              </div>
            </div>
          </div>
          <div class="item" :class="{afoot:hotWaterAndSocData.yxzt==0, failure:hotWaterAndSocData.yxzt==1}">
            <div class="pic">
              <img src="@/assets/images/list3-icon2.png" alt="">
            </div>
            <div class="text">
              <div class="title">储能系统</div>
              <div class="info">
                <div class="p1 volume">
                  <div class="t1">装机容量：</div>
                  <div class="t2">1.0MWh</div>
                </div>
                <div class="p1 state">
                  <div class="t1">运行状态：</div>
                  <div class="t2" v-if="hotWaterAndSocData.yxzt==0"><img src="@/assets/images/icon-5.png" alt="">正常
                  </div>
                  <div class="t2" v-if="hotWaterAndSocData.yxzt==1"><img src="@/assets/images/icon-6.png" alt="">故障
                  </div>
                </div>
                <div class="p1 soc">
                  <div class="t1">SOC：</div>
                  <div class="t2">{{ hotWaterAndSocData.soc }}%</div>
                </div>
              </div>
            </div>
          </div>
          <div class="item">
            <div class="pic">
              <img src="@/assets/images/list3-icon3.png" alt="">
            </div>
            <div class="text">
              <div class="title">热泵系统</div>
              <div class="info">
                <div class="p1 volume">
                  <div class="t1">回水温度：</div>
                  <div class="t2">{{ hotWaterAndSocData.intcr }}℃</div>
                </div>
                <div class="p1 state">
                  <div class="t1">供水温度：</div>
                  <div class="t2">{{ hotWaterAndSocData.outtcr }}℃</div>
                </div>
                <div class="p1 soc">
                  <div class="t1">运行模式：</div>
                  <div class="t2" v-if="hotWaterAndSocData.status==0">制冷</div>
                  <div class="t2" v-if="hotWaterAndSocData.status==1">制热</div>
                  <div class="t2" v-if="hotWaterAndSocData.status==250">除霜</div>
                </div>
                <div class="p1 OnOrOff">
                  <div class="t1">运行状态：</div>
                  <div class="t2" v-if="hotWaterAndSocData.onoroff==0">关机</div>
                  <div class="t2" v-if="hotWaterAndSocData.onoroff==1">开机</div>
                </div>
              </div>
            </div>
          </div>
          <div class="item failure">
            <div class="pic">
              <img src="@/assets/images/list3-icon4.png" alt="">
            </div>
            <div class="text">
              <div class="title">风力发电</div>
              <div class="info">
                <div class="p1 volume">
                  <div class="t1">装机容量：</div>
                  <div class="t2">0.00kW</div>
                </div>
                <div class="p1 state">
                  <div class="t1">运行状态：</div>
                  <div class="t2"><img src="@/assets/images/icon-6.png" alt="">待接入</div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="box box2">
        <div class="list4">
          <div class="hd">
            <div class="pic">
              <img src="@/assets/images/list4-icon1.png" alt="">
            </div>
            <div class="text">
              <div class="icon">
                <img src="@/assets/images/list4-icon2.png" alt="">
              </div>
              <div class="title">并网点计量表</div>
            </div>
          </div>
          <div class="items it1">
            <div class="item i1">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon3.png" alt="">
              </div>
              <div class="title">100kW逆变器<br>
                <div class="num">{{ wiringDiagramData.nbq100 }}kW</div>
              </div>
            </div>
            <div class="item i2">
              <div class="icon">
                <img src="@/assets/images/list4-icon4.png" alt="">
              </div>
              <div class="title">光伏阵列<br>98.20kWp</div>
            </div>
          </div>
          <div class="items it2">
            <div class="item i1">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon3.png" alt="">
              </div>
              <div class="title">50kW逆变器<br>
                <div class="num">{{ wiringDiagramData.nbq50 }}kW</div>
              </div>
            </div>
            <div class="item i2">
              <div class="text">
                <div class="icon">
                  <img src="@/assets/images/list4-icon4.png" alt="">
                </div>
                <div class="title">光伏阵列<br>54.00kWp</div>
              </div>
            </div>
          </div>
          <div class="items it3">
            <div class="item i1">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon3.png" alt="">
              </div>
              <div class="title">储能变流器<br>
                <div class="num">{{ wiringDiagramData.cnblq }}kW<span v-if="wiringDiagramData.cnblq>0">（充）</span><span
                    v-if="wiringDiagramData.cnblq<0">（放）</span></div>
              </div>
            </div>
            <div class="item i2">
              <div class="text">
                <div class="icon">
                  <img src="@/assets/images/list4-icon5.png" alt="">
                </div>
                <div class="title">储能电池<br>1.0MWh</div>
              </div>
            </div>
          </div>
          <div class="items it4">
            <div class="item i1">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="ql">
                <img src="@/assets/images/icon-ql.png" alt="">
              </div>
              <div class="dot2">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon3.png" alt="">
              </div>
              <div class="title">AC/DC变换器<br>
                <div class="num">10.00kW</div>
              </div>
            </div>
            <div class="item i2">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon6.png" alt="">
              </div>
              <div class="title">DC/DC变换器<br>
                <div class="num">{{ wiringDiagramData.DCbhq }}kW</div>
              </div>
            </div>
            <div class="item i3">
              <div class="text">
                <div class="icon">
                  <img src="@/assets/images/list4-icon4.png" alt="">
                </div>
                <div class="title">光伏阵列<br>10.80kWp</div>
              </div>
            </div>
            <div class="item i4">
              <div class="dot">
                <img src="@/assets/images/list4-blue.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon7.png" alt="">
              </div>
              <div class="title">直流负荷<br>
                <div class="num">10.00kW</div>
              </div>
            </div>
          </div>
          <div class="items it5">
            <div class="dot">
              <img src="@/assets/images/list4-red.png" alt="">
            </div>
            <div class="ql">
              <img src="@/assets/images/icon-ql.png" alt="">
            </div>
            <div class="title2" style="
                            font-size: 16px;
                            color: #FFFFFF;
                            font-family: SourceHanSansCN-Regular;
                            line-height: 1.2;
                            text-align: center;
                            white-space: nowrap;
                            position: absolute;
                            left: 870px;
                            top: 262px;">交流负荷<br>
              <div class="num" style="color: #FF5A5A;">{{ wiringDiagramData.acload }}kW</div>
            </div>
            <div class="item i1">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon9.png" alt="">
              </div>
              <div class="title">充电桩</div>
            </div>
            <div class="item i2">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon10.png" alt="">
              </div>
              <div class="title">热泵系统</div>
            </div>
            <div class="item i3">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon11.png" alt="">
              </div>
              <div class="title">办公用电</div>
            </div>
            <div class="item i4">
              <div class="dot">
                <img src="@/assets/images/list4-red.png" alt="">
              </div>
              <div class="icon">
                <img src="@/assets/images/list4-icon12.png" alt="">
              </div>
              <div class="title">视频监控</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="index-sec3">
      <div class="box box1">
        <div class="list5">
          <div class="item">
            <div class="pic">
              <img src="@/assets/images/list5-icon1.png" alt="">
            </div>


            <div class="text">
              <div class="t1">当日CO2减排量</div>
              <div class="t2">
                <div class="icon"></div>
                <div class="num">{{ capacityData.co2day }}</div>
                kg
              </div>
            </div>
          </div>
          <div class="item">
            <div class="pic">
              <img src="@/assets/images/list5-icon2.png" alt="">
            </div>
            <div class="text">
              <div class="t1">累计CO2减排量</div>
              <div class="t2">
                <div class="icon"></div>
                <div class="num">{{ capacityData.co2sum }}</div>
                kg
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="box box2">
        <div class="box-title">
          <div class="title">并网功率曲线</div>
          <div class="unit">单位：kW</div>
        </div>
        <echart3 classname="echart3" :GCPCCurveData="GCPCCurveData"></echart3>
      </div>
      <div class="box box3">
        <div class="box-title">
          <div class="title">交流负荷功率曲线</div>
          <div class="unit">单位：kW</div>
        </div>
        <echart4 classname="echart4" :acLoadCurveData="acLoadCurveData"></echart4>
      </div>
      <div class="box box4">
        <div class="box-title">
          <div class="title">光伏发电功率曲线</div>
          <div class="unit">单位：kW</div>
        </div>
        <echart2 classname="echart2" :photovoltaicCurveData="photovoltaicCurveData"></echart2>
      </div>
    </div>
  </div>
</template>

<script>
import echart1 from "@/components/echart1"
import echart2 from "@/components/echart2"
import echart3 from "@/components/echart3"
import echart4 from "@/components/echart4"
import echart5 from "@/components/echart5"
import dayByHour from "@/components/dayByHour"
import monthByDay from "@/components/monthByDay"
import yearsByMonth from "@/components/yearsByMonth"
import {
  capacityApi,
  hotWaterAndSocApi,
  combinedStatusApi,
  photovoltaicCurveApi,
  GCPCCurveApi,
  acLoadCurveApi,
  dcLoadCurveApi,
  deviceNumberApi,
  wiringDiagramApi
} from '@/api';
import {formatDate, numFilter} from "@/utils.js"
setTimeout(function (){
  location.reload();
},5*60*1000)
export default {
  components: {echart1, echart2, echart3, echart4, echart5,dayByHour,monthByDay,yearsByMonth},
  data: function () {
    return {
      capacityData: {},                  //获取发电总量以及今日发电量和碳排放
      hotWaterAndSocData: {},            //获取热泵系统
      combinedStatusData: {},            //查询并网点状态总览
      photovoltaicCurveData: {},         //光伏发电功率曲线
      GCPCCurveData: {},                 //并网功率曲线
      acLoadCurveData: {},               //交流负荷功率曲线
      deviceNumberData: {},              //获取设备总数
      wiringDiagramData: {},             //中间大图
      intervalId: null,                  //计时器
      activeName: 'first'
    }
  },
  name: 'home',
  mounted: function () {
    this.dataRefreh()

  },
  methods: {
    getData() {
      var _this = this;
      // 获取发电总量以及今日发电量和碳排放
      capacityApi({})
          .then(function (response) {
            if (response.ret == 200) {
              var capacityData = {
                sum: response.data.sum.toFixed(0),
                day: response.data.day.toFixed(0),
                co2sum: response.data.co2sum.toFixed(0),
                co2day: response.data.co2day.toFixed(2),
                yxzt: response.data.wrong
              }
              _this.capacityData = capacityData
            }
          });

      // 获取热泵系统,储能SOC
      hotWaterAndSocApi({})
          .then(function (response) {
            if (response.ret == 200) {
              var yxzt
              if (response.data.storedWrong.yx3 == 0 && response.data.storedWrong.yx5 == 0 && response.data.storedWrong.yx124 == 0 && response.data.storedWrong.yx141 == 0) {
                yxzt = 0
              } else {
                yxzt = 1
              }
              var hotWaterAndSocData = {
                intcr: response.data.intcr.toFixed(1),
                outtcr: response.data.outtcr.toFixed(1),
                soc: response.data.soc.toFixed(0),
                yxzt: yxzt,
                status: response.data.status,
                onoroff: response.data.onoroff
              }
              _this.hotWaterAndSocData = hotWaterAndSocData
            }
          });

      // 查询并网点状态总览
      combinedStatusApi({})
          .then(function (response) {
            if (response.ret == 200) {
              var combinedStatusData = {
                zxygdn: numFilter(response.data.yc15, 2),
                fxygdn: numFilter(response.data.yc13, 2),
                glys: -numFilter(response.data.yc12, 2),
                zxgl: response.data.yc10 > 0 ? numFilter(response.data.yc10 / 1000, 2) : 0,
                fxgl: response.data.yc10 < 0 ? numFilter((0 - response.data.yc10 / 1000), 2) : 0,
              }
              _this.combinedStatusData = combinedStatusData
            }
          });

      // 光伏发电功率曲线
      photovoltaicCurveApi({})
          .then(function (response) {
              var xData = [], result = []
              var photovoltaicCurveData = {
                xData: response.xData,
                result: response.yData
              }
              _this.photovoltaicCurveData = photovoltaicCurveData
          });

      // 并网功率曲线
      GCPCCurveApi({})
          .then(function (response) {

              var GCPCCurveData = {
                xData: response.xData,
                result: response.yData
              }
              _this.GCPCCurveData = GCPCCurveData
          });

      // 交流负荷功率曲线
      acLoadCurveApi({})
          .then(function (response) {
              var acLoadCurveData = {
                xData: response.xData,
                result: response.yData
              }
              _this.acLoadCurveData = acLoadCurveData
          });

      // 获取设备总数
      deviceNumberApi({})
          .then(function (response) {
            if (response.ret == 200) {
              var zc = 0, xd = 0, dj = 0, gz = 0, zd = 0, wh = 0;

              function nbqzt(value) {
                var len = value.length - 1
                // 正常
                if (value.charAt(len) == 1 || value.charAt(len - 6) == 1 || value.charAt(len - 10) == 1 || value.charAt(len - 12) == 1) {
                  zc++
                }
                // 限电
                if (value.charAt(len - 11) == 1) {
                  xd++
                }
                // 待机
                if (value.charAt(len - 1) == 1 || value.charAt(len - 2) == 1 || value.charAt(len - 4) == 1) {
                  dj++
                }
                // 故障
                if (value.charAt(len - 9) == 1 || value.charAt(len - 13) == 1) {
                  gz++
                }
                // 中断
                if (value.charAt(len - 5) == 1) {
                  zd++
                }
                // 维护
                if (value.charAt(len - 3) == 1) {
                  wh++
                }
              }

              response.data.device.map(item => {
                if (item.dev_name === '50k逆变器') {
                  nbqzt(response.data[50].yc60.toString(2))
                }
                if (item.dev_name === '100k逆变器') {
                  nbqzt(response.data[100].yc60.toString(2))
                }
                if (item.dev_name != '50k逆变器' && item.dev_name != '100k逆变器') {
                  if (item.dev_state == 1) {
                    zc++
                  } else if (item.dev_state==0) {
                    wh++
                  }else {
                    gz++
                  }
                }
              })
              var deviceNumberData = {
                sbzs: response.data.device.length,
                dataArr: [
                  {value: zc, name: '正常'},
                  {value: xd, name: '限电'},
                  {value: dj, name: '待机'},
                  {value: gz, name: '故障'},
                  {value: zd, name: '中断'},
                  {value: wh, name: '维护'}
                ]
              }
              _this.deviceNumberData = deviceNumberData
            }
          });

      // 中间大图
      wiringDiagramApi({})
          .then(function (response) {
            if (response.ret == 200) {
              var wiringDiagramData = {
                nbq50: numFilter(response.data.kw50, 2),
                nbq100: numFilter(response.data.kw100, 2),
                cnblq: numFilter(response.data.stored, 2),
                cdz: numFilter(response.data.chargingPile, 2),
                rbxt: numFilter(response.data.heatPump, 2),
                bgyd: numFilter(response.data.work, 2),
                DCbhq: numFilter(response.data.dc, 2),
                gflz: numFilter(response.data.photovoltaicArray, 2),
                acload: numFilter((response.data.ACLoad) / 1000, 2)
              }
              _this.wiringDiagramData = wiringDiagramData
            }
          });

    }
    ,
    handleClick(tab, event) {
      console.log(tab, event);
    },
    // 定时刷新数据函数
    dataRefreh() {
      var _this = this;
      _this.getData();
      _this.intervalId = setTimeout(() => {
        _this.dataRefreh()
      }, 3000);

    },

  },
  beforeDestroy: function () {
    clearTimeout(this.intervalId)
  }
}
</script>

<style>
#tab-first,#tab-second,#tab-third{
  color: white;
  font-weight: inherit;
}
</style>
<style scoped>

.index-page {
  padding: 94px 30px 0;
  height: 1080px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  position: relative;
  z-index: 99;
}

.index-sec1 {
  padding-top: 10px;
  width: 414px;
}

.index-sec1 .box {
  background: linear-gradient(0deg, rgba(0, 218, 252, .2) 0%, rgba(0, 218, 252, 0) 100%);
}

.index-sec1 .box + .box {
  margin-top: 20px;
}

.index-sec1 .box1 {
  height: 170px;
  background: none;
}

.index-sec1 .box2 {
  height: 238px;
}

.index-sec1 .box3 {
  height: 250px;
}

.index-sec1 .box4 {
  height: 238px;
}

.index-sec2 {
  padding-top: 20px;
  width: calc(100% - 828px);
}

.index-sec2 .box + .box {
  margin-top: 20px;
}

.index-sec2 .box1 {
  height: 124px;
}

.index-sec2 .box2 {
  height: 802px;
}

.index-sec3 {
  width: 414px;
}

.index-sec3 .box {
  background: linear-gradient(0deg, rgba(0, 218, 252, .2) 0%, rgba(0, 218, 252, 0) 100%);
}

.index-sec3 .box + .box {
  margin-top: 20px;
}

.index-sec3 .box1 {
  height: 190px;
  background: none;
}

.index-sec3 .box2 {
  height: 238px;
}

.index-sec3 .box3 {
  height: 238px;
}

.index-sec3 .box4 {
  height: 238px;
}

.box-title {
  padding: 0 12px 0 34px;
  height: 38px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  z-index: 1;
}

.box-title:after {
  content: '';
  position: absolute;
  left: -10px;
  top: -13px;
  width: 426px;
  height: 59px;
  background-image: url(~@/assets/images/tit-bg1.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
  z-index: -1;
}

.box-title .title {
  font-size: 20px;
  font-family: YouSheBiaoTiHei;
  font-style: italic;
  color: #FFFFFF;
}

.box-title .unit {
  font-size: 12px;
  font-family: SourceHanSansCN-Regular;
  color: #FFFFFF;
}

.list1 {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.list1 .item {
  flex: 0 0 calc(50% - 12px);
  display: flex;
  align-items: center;
}

.list1 .pic {
  margin-right: 12px;
  width: 76px;
  height: 78px;
  line-height: 78px;
  font-size: 0;
  text-align: center;
  flex-shrink: 0;
}

.list1 .pic img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
}

.list1 .text {
  padding: 9px 29px 0 17px;
  width: calc(100% - 88px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 47px;
  background-image: url(~@/assets/images/list1-bg1.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
}

.list1 .text .t1 {
  font-size: 16px;
  font-family: SourceHanSansCN-Regular;
  color: #FFFFFF;
}

.list1 .text .t2 {
  font-size: 16px;
  font-family: SourceHanSansCN-Regular;
  color: #FFFFFF;
}

.list1 .text .t2 .num {
  margin: -2px 4px 0 0;
  display: inline-block;
  min-width: 100px;
  font-size: 28px;
  font-family: DIN-Bold;
}

.box-list1 {
  padding-top: 36px;
  height: 212px;
}

.total-num {
  margin-bottom: 26px;
  color: #FFFFFF;
  font-family: SourceHanSansCN-Regular;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.total-num .l {
  padding-right: 20px;
  width: calc((100% - 78px) / 2);
  text-align: right;
}

.total-num .m {
  width: 78px;
}

.total-num .r {
  padding-left: 20px;
  width: calc((100% - 78px) / 2);
  text-align: left;
}

.total-num .t1 {
  font-size: 14px;
}

.total-num .t2 {
  text-shadow: 0px 3px 5px rgba(3, 21, 34, 0.21);
  background: linear-gradient(0deg, #82CEE1 0%, #FFFFFF 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.total-num .t2 .num {
  margin-top: -2px;
  display: inline-block;
  font-size: 20px;
  font-family: DIN-Bold;
}

.total-num .pic {
  width: 100%;
}

.total-num .pic img {
  display: block;
  width: 100%;
}

.list2 {
  padding: 0 30px;
  text-align: center;
  display: flex;
  justify-content: space-between;
}

.list2 .item {
  height: 47px;
  flex: 0 0 calc(33.33% - 15px);
  background-image: url(~@/assets/images/list2-bg1.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.list2 .t1 {
  font-size: 12px;
  font-family: SourceHanSansCN-Regular;
  color: #FFFFFF;
}

.list2 .t2 {
  font-size: 12px;
  font-family: SourceHanSansCN-Regular;
  text-shadow: 0px 3px 5px rgba(3, 21, 34, 0.21);
  background: linear-gradient(0deg, #82CEE1 0%, #FFFFFF 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.list2 .t2 .num {
  display: inline-block;
  font-size: 16px;
  line-height: 1.2;
  font-family: DIN-Bold;
  color: #FFFFFF;
}

.list3 {
  padding: 0 30px;
  height: 120%;
  display: flex;
  justify-content: space-between;
}

.list3 .item {
  flex: 0 0 calc(25% - 10px);
  display: flex;
  background-image: url(~@/assets/images/list3-bg1.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
}

.list3 .pic {
  margin-top: 30px;
  width: 88px;
  font-size: 0;
  text-align: center;
}

.list3 .pic img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
}

.list3 .text {
  padding: 10px 0 0 5px;
  width: calc(100% - 88px);
}

.list3 .text .title {
  font-size: 18px;
  color: #00F8FF;
  font-family: YouSheBiaoTiHei;
}

.list3 .text .info {
  font-size: 14px;
  color: #EFFCFF;
  line-height: 2;
  font-family: SourceHanSansCN-Regular;
}

.list3 .text .info .p1 {
  font-family: DIN-Bold;
  display: flex;
}

.list3 .text .info .t1 {
  width: 72px;
  font-family: SourceHanSansCN-Regular;
}

.list3 .text .info .t2 {
  width: calc(100% - 72px);
}

.list3 .text .info .volume {
}

.list3 .text .info .state {
}

.list3 .text .info .state .t2 {
  font-family: SourceHanSansCN-Regular;
}

.list3 .text .info .state img {
  margin: -4px 2px 0 0;
  display: inline-block;
  vertical-align: middle;
  max-width: 20px;
}

.list3 .text .info .soc {
}

.list3 .item.normal {
}

.list3 .item.normal .state {
  background: linear-gradient(0deg, #2FFF7D 0%, #92FFBB 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.list3 .item.normal .state .t1 {
  color: #EFFCFF;
  background: none;
  -webkit-text-fill-color: #EFFCFF;
}

.list3 .item.afoot {
}

.list3 .item.afoot .state {
  background: linear-gradient(0deg, #2FFF7D 0%, #92FFBB 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.list3 .item.afoot .state .t1 {
  color: #EFFCFF;
  background: none;
  -webkit-text-fill-color: #EFFCFF;
}

.list3 .item.failure {
}

.list3 .item.failure .state {
  background: linear-gradient(0deg, #FF2F2F 0%, #FF7B7B 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.list3 .item.failure .state .t1 {
  color: #EFFCFF;
  background: none;
  -webkit-text-fill-color: #EFFCFF;
}

.list4 {
  margin: 0 auto;
  width: 98%;
  height: 100%;
  background-image: url(~@/assets/images/line-bg1.png);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% auto;
  position: relative;
}

.list4 .hd {
  position: absolute;
  left: 37.5%;
  top: 3px;
}

.list4 .hd .pic {
  width: 100px;
  font-size: 0;
  text-align: center;
}

.list4 .hd .pic img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
}

.list4 .hd .text {
  position: absolute;
  left: 28px;
  top: calc(100% + 17px);
  display: flex;
  align-items: center;
}

.list4 .hd .text .icon {
  margin-right: 20px;
  width: 40px;
  height: 40px;
  line-height: 40px;
  font-size: 0;
  text-align: center;
  flex-shrink: 0;
}

.list4 .hd .text .icon img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
}

.list4 .hd .text .title {
  font-size: 16px;
  color: #FFFFFF;
  font-family: SourceHanSansCN-Regular;
  white-space: nowrap;
}

.list4 .items {
  position: absolute;
}

.list4 .items.it1 {
  left: 0;
  top: 100px;
}

.list4 .item {
  position: absolute;
  display: flex;
}

.list4 .item .icon {
  margin-right: 10px;
  width: 34px;
  font-size: 0;
  text-align: center;
  flex-shrink: 0;
}

.list4 .item .icon img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
}

.list4 .item .title {
  font-size: 16px;
  color: #FFFFFF;
  font-family: SourceHanSansCN-Regular;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.list4 .item .title .num {
  color: #FF5A5A;
}

.list4 .dot, .list4 .dot2 {
  position: absolute;
  width: 10px;
  height: 17px;
  overflow: hidden;
}

.list4 .dot img, .list4 .dot2 img {
  display: block;
  width: 100%;
  height: 100%;
}

.list4 .ql {
  position: absolute;
  width: 31px;
  height: 18px;
  overflow: hidden;
}

.list4 .ql img {
  display: block;
  width: 100%;
  height: 100%;
}

.list4 .items.it1 .item.i1 {
  left: 20px;
  top: 204px;
}

.list4 .items.it1 .item.i1 .dot {
  left: 13px;
  top: -70px;
}

.list4 .items.it1 .item.i2 {
  left: -10px;
  top: 320px;
  display: block;
}

.list4 .items.it1 .item.i2 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it1 .item.i2 .title {
  width: 100px;
}

.list4 .items.it2 .item.i1 {
  left: 163px;
  top: 304px;
}

.list4 .items.it2 .item.i1 .dot {
  left: 13px;
  top: -70px;
}

.list4 .items.it2 .item.i2 {
  left: 136px;
  top: 420px;
  display: block;
}

.list4 .items.it2 .item.i2 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it2 .item.i2 .title {
  width: 100px;
}

.list4 .items.it3 .item.i1 {
  left: 321px;
  top: 304px;
}

.list4 .items.it3 .item.i1 .dot {
  left: 13px;
  top: -70px;
}

.list4 .items.it3 .item.i2 {
  left: 298px;
  top: 423px;
  display: block;
}

.list4 .items.it3 .item.i2 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it3 .item.i2 .title {
  width: 100px;
}

.list4 .items.it4 .item.i1 {
  left: 496px;
  top: 304px;
}

.list4 .items.it4 .item.i1 .dot {
  left: 13px;
  top: -70px;
}

.list4 .items.it4 .item.i1 .ql {
  left: 2px;
  top: -42px;
}

.list4 .items.it4 .item.i1 .dot2 {
  left: 13px;
  top: 84px;
}

.list4 .items.it4 .item.i2 {
  left: 397px;
  top: 573px;
}

.list4 .items.it4 .item.i2 .dot {
  left: 13px;
  top: -42px;
}

.list4 .items.it4 .item.i3 {
  left: 368px;
  top: 684px;
}

.list4 .items.it4 .item.i3 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it4 .item.i3 .title {
  width: 100px;
}

.list4 .items.it4 .item.i4 {
  left: 594px;
  top: 575px;
}

.list4 .items.it4 .item.i4 .dot {
  left: 13px;
  top: -42px;
}

.list4 .items.it5 > .ql {
  left: 832px;
  top: 262px;
}

.list4 .items.it5 > .dot {
  left: 841px;
  top: 234px;
}

.list4 .items.it5 .item.i1 {
  left: 660px;
  top: 422px;
  display: block;
}

.list4 .items.it5 .item.i1 .dot {
  left: 39px;
  top: -34px;
}

.list4 .items.it5 .item.i1 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it5 .item.i1 .title {
  width: 100px;
}

.list4 .items.it5 .item.i2 {
  left: 757px;
  top: 422px;
  display: block;
}

.list4 .items.it5 .item.i2 .dot {
  left: 46px;
  top: -34px;
}

.list4 .items.it5 .item.i2 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it5 .item.i2 .title {
  width: 100px;
}

.list4 .items.it5 .item.i3 {
  left: 845px;
  top: 422px;
  display: block;
}

.list4 .items.it5 .item.i3 .dot {
  left: 45px;
  top: -34px;
}

.list4 .items.it5 .item.i3 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it5 .item.i3 .title {
  width: 100px;
}

.list4 .items.it5 .item.i4 {
  left: 931px;
  top: 422px;
  display: block;
}

.list4 .items.it5 .item.i4 .dot {
  left: 44px;
  top: -34px;
}

.list4 .items.it5 .item.i4 .icon {
  margin: 0 auto 8px;
  width: 44px;
  height: 46px;
  line-height: 46px;
}

.list4 .items.it5 .item.i4 .title {
  width: 100px;
}

.list5 {
  padding: 0 34px;
  text-align: center;
  display: flex;
  justify-content: space-between;
}

.list5 .item {
  flex: 0 0 calc(50% - 40px);
  background-image: url(~@/assets/images/list5-bg1.png);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 175px 72px;
}

.list5 .pic {
  height: 96px;
  line-height: 96px;
  font-size: 0;
  text-align: center;
}

.list5 .pic img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
}

.list5 .text {
  padding-bottom: 10px;
  margin-top: -20px;
}

.list5 .t1 {
  margin-bottom: 40px;
  font-size: 16px;
  font-family: SourceHanSansCN-Regular;
  color: #FFFFFF;
}

.list5 .t2 {
  font-size: 14px;
  font-family: SourceHanSansCN-Regular;
  color: #FFFFFF;
}

.list5 .t2 .icon {
  margin-top: -2px;
  display: inline-block;
  vertical-align: middle;
  width: 14px;
  height: 14px;
  background-image: url(~@/assets/images/list5-lx.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
}

.list5 .t2 .num {
  margin-top: -2px;
  padding: 0 10px;
  display: inline-block;
  vertical-align: middle;
  font-size: 24px;
  text-align: left;
  font-family: DIN-Bold;
  max-width: 105px;
}

.echart1 {
  height: 200px;
}



.echart2 {
  height: 200px;
}

.echart3 {
  height: 200px;
}

.echart4 {
  height: 200px;
}

.echart5 {
  height: 200px;
}

</style>